package com.zhifa.hdtyg_cdgl.service;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zhifa.hdtyg_cdgl.dao.SiteInformationMapper;
import com.zhifa.hdtyg_cdgl.dao.SiteMaintenanceMapper;
import com.zhifa.hdtyg_cdgl.entity.SiteInformation;
import com.zhifa.hdtyg_cdgl.entity.SiteMaintenance;
import com.zhifa.hdtyg_cdgl.util.ComboboxUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class SiteMaintenanceService {
    @Autowired
    SiteMaintenanceMapper siteMaintenanceMapper;

    @Autowired
    SiteInformationMapper siteInformationMapper;


    public JSONObject findAllSiteMaintenance(SiteMaintenance siteMaintenance,int page ,int rows){

        PageHelper.startPage(page, rows);
        List<SiteMaintenance> allSiteMaintenance = siteMaintenanceMapper.findAllSiteMaintenance(siteMaintenance);
        PageInfo<SiteMaintenance>pageInfo=new PageInfo<>(allSiteMaintenance);
        long total = pageInfo.getTotal();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("total", total);
        JSONArray jsonArray = new JSONArray();
        for (int i = 0; i <allSiteMaintenance.size() ; i++) {
            SiteMaintenance tempsiteMaintenance = allSiteMaintenance.get(i);
            JSONObject tempJsonObject = new JSONObject();
            tempJsonObject.put("siteWxId",tempsiteMaintenance.getSiteWxId());
            tempJsonObject.put("maintenanceMode",tempsiteMaintenance.getMaintenanceMode());
            tempJsonObject.put("status", tempsiteMaintenance.getStatus());
            Integer siteId = tempsiteMaintenance.getSiteId();
            tempJsonObject.put("siteId", siteId);
            SiteInformation siteInformation = siteInformationMapper.selectByPrimaryKey(siteId);
            tempJsonObject.put("name", siteInformation.getName());
            tempJsonObject.put("position", siteInformation.getPosition());
            jsonArray.add(tempJsonObject);
        }
        jsonObject.put("rows", jsonArray);
        return jsonObject;
    }

    @Transactional
    public int addSiteMaintenance(SiteMaintenance siteMaintenance,Integer adminId){

        int insert = siteMaintenanceMapper.insert(siteMaintenance);
        Map<String,Object> param=new HashMap<>();
        param.put("status",siteMaintenance.getStatus());
        param.put("siteId",siteMaintenance.getSiteId());
        param.put("adminId", adminId);

        int i = siteInformationMapper.updateStatusWeixiu(param);

        if (i>0&&insert>0){
            return 1;
        }
        return 0;


    }

    public JSONArray findStatus(){

        List<String> status = siteMaintenanceMapper.findStatus();
        JSONArray jsonArray = ComboboxUtil.changeListToJsonarray(status);
        return  jsonArray;

    }

    @Transactional
    public int resatarWeixiuStatus(SiteMaintenance siteMaintenance,Integer adminId){

        Map<String,Object> param=new HashMap<>();
        param.put("status",siteMaintenance.getStatus());
        param.put("siteId",siteMaintenance.getSiteId());
        param.put("adminId", adminId);

        int i1 = siteInformationMapper.updateStatusWeixiu(param);

        int i = siteMaintenanceMapper.resatarWeixiuStatus(siteMaintenance);

        if (i>0&&i1>0){
            return 1;
        }
        return 0;
    }

}
